package com.ahao.sdk.utils;

import org.json.JSONException;
import org.json.JSONObject;

import java.lang.reflect.Field;

public class JsonUtils {

    /**
     * 将模型类转换成 JSON 字符串
     *
     * @param model 模型类实例
     * @return JSON 字符串
     */
    public static String toJson(Object model) {
        if (model == null) {
            return null;
        }

        // 获取类的所有字段
        Field[] fields = model.getClass().getDeclaredFields();

        // 创建一个包含字段名和字段值的 JSON 对象
        JSONObject jsonObject = new JSONObject();
        for (Field field : fields) {
            // 设置字段访问权限为可访问，防止 private 字段无法访问
            field.setAccessible(true);

            try {
                // 获取字段名和字段值，并添加到 JSON 对象中
                String fieldName = field.getName();
                Object fieldValue = field.get(model);
                jsonObject.put(fieldName, fieldValue);
            } catch (IllegalAccessException | JSONException e) {
                e.printStackTrace();
            }
        }

        // 返回 JSON 字符串
        return jsonObject.toString();
    }

    // 可以根据需要添加其他方法，例如将 JSON 字符串转换为模型类
}
